package phoenix.mob_android.test_objects;

import phoenix.core.PhoenixManager;
import phoenix.core.base.extensions.TestBaseMobAndroidExt;
import phoenix.mob_android.test_objects.data_providers.SettingsDataProviders;

public class SettingsTests extends TestBaseMobAndroidExt
{
	public SettingsTests(PhoenixManager p_phoenix)
	{
		super(p_phoenix);
	}

	// Data
	public SettingsDataProviders dataProviders = new SettingsDataProviders(manager);

	public void settingTests(String p_nameUniquePrefix)
	{
		try
		{
			if (manager.isFlirt() || manager.isCL())
			{
				page().mainMenu().openMainMenu().openMyProfile().openSettings();
			}
			if (manager.isWB())
			{
				page().mainMenu().openMainMenu().openSettings();
			}
			page().settingsPage().isOnSettingsPage().setScreenname(p_nameUniquePrefix);
			page().indexPage().clickBackAndroidButton();
			page().settingsPage().validateScreenname(p_nameUniquePrefix);
			page().indexPage().clickBackAndroidButton();
			page().settingsPage().checkTermsAndConditions();
			page().indexPage().clickBackAndroidButton();
			String p_newPassword = page().settingsPage().changePassword();
			page().indexPage().clickBackAndroidButton();
			page().settingsPage().setActivityNotifications();
			page().indexPage().clickBackAndroidButton();
			page().settingsPage().setEmailNotifications();
			page().indexPage().clickBackAndroidButton();
			page().settingsPage().clickLogoutButton();
			page().indexPage().isOnIndexPage().login(manager.testUser().getEmail(), p_newPassword);
			if (manager.isFlirt())
			{
				page().searchPage().closeMobileNumberPopUp();
			}
			if (page().searchPage().isOnSearchPage())
			{
				manager.testUser().setPassword(p_newPassword);
				manager.db().updateUserData(manager.testUser());
			}
			if (manager.isFlirt() || manager.isCL())
			{
				page().mainMenu().openMainMenu().openMyProfile().openSettings();
			}
			if (manager.isWB())
			{
				page().mainMenu().openMainMenu().openSettings();
			}
			page().settingsPage().checkActivityNotifications();
			page().indexPage().clickBackAndroidButton();
			page().settingsPage().checkEmailNotifications();
		}
		catch (Exception p_ex)
		{
			log().errorAndScreen("MySettings test  error : " + p_ex.toString());
		}

		// Verifying result
		test().forErrors();
	}
}
